From 0748cf563d0d0d03001a62589f13be16a8ec06c1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 8 Dec 2009 10:09:04 -0500 Subject: [PATCH] Never do implicit paints for foreign windows They don't need double buffer combination since they have no client-side children, and creating pixmaps for them is risky since they could disappear at any time. May fix bug 598476 and 603652. --- gdk/gdkwindow.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index 0404851763..78b19e884d 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -2611,6 +2611,14 @@ gdk_window_begin_implicit_paint (GdkWindow *window, GdkRectangle *rect) private->implicit_paint != NULL) return FALSE; /* Don't stack implicit paints */ + /* Never do implicit paints for foreign windows, they don't need + * double buffer combination since they have no client side children, + * and creating pixmaps for them is risky since they could disappear + * at any time + */ + if (private->window_type == GDK_WINDOW_FOREIGN) + return FALSE; + paint = g_new (GdkWindowPaint, 1); paint->region = gdk_region_new (); /* Empty */ paint->x_offset = rect->x; -- 2.30.2